Wichtig !!! | N E U E S ... | Inhalt | Hotline | Stichwortverzeichnis |
Kapitel 5-8
Der Befehlssatz: NOISE - POKE
NOISE | |
Typ: | Befehl |
Syntax: | NOISE <num.Ausdruck>,<num.Ausdruck>[[,<num.Ausdruck>,<num.Ausdruck>]] NOISE <Tonkanal>,<Ton>[[,<Tonkanal>,<Ton>]] |
Erklärung: | Hiermit können Sie die Reinheit eines Tons einstellen. In <Tonkanal> muß ein Wert zwischen 0 und
15 übergeben werden. <Ton> kann Werte von 0 - 254 haben. 0 bedeutet, daß der Ton rein ist, 254
erzeugt mehr einen Brummton. Es können bis zu 16 unterschiedliche Tonkanäle mit einem Befehl verändert
werden. Hinweis: Um den Ton zu hören, muß den entsprechenden Kanälen mittels TUNE eine Frequenz und mittels VOLUME eine Lautstärke zugewiesen werden. |
Beispiel: |
VOLUME 0,255 T=0:Dt=1 REPEAT NOISE 0,T:WAIT 0.01 T+=Dt IF T<=0 or T>=254 then Dt*=-1 UNTIL LEN(INKEY$) |
Ergebnis: |
|
siehe auch: | TUNE VOLUME Tabelle der MIDI Noten |
NOR | |
Typ: | Operator |
Syntax: | <num.Ausdruck>NOR <num.Ausdruck> |
Erklärung: | Verknüpft die beiden numerischen Ausdrücke logisch "nicht-oder (NOT OR)". |
Beispiel: |
|
Ergebnis: |
|
siehe auch: | OR XOR AND NAND IMP EQV NOT |
NOT | |
Typ: | Funktion |
Syntax: | NOT <num.Ausdruck> |
Erklärung: | Negiert den numerischen Ausdruck bitweise. Da alle Ausdrücke ungleich 0 als wahr angesehen werden, macht NOT nicht unbedingt aus einem wahren Ausdruck einen falschen. |
Beispiel: |
PRINT NOT(2>1), NOT Ok |
Ergebnis: |
|
siehe auch: | OR NOR XOR AND NAND IMP EQV |
OCT$ | |
Typ: | Funktion |
Syntax: | OCT$(<num.Ausdruck>) |
Erklärung: | Wandelt den numerischen Ausdruck in eine Zeichenkette um, die den gerundeten Wert des Ausdrucks als Oktalzahl darstellt. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: | HEX$ BIN$ STR$ VAL |
OFF, ON | |
Erklärung: | siehe OUTLINE COMPILER |
Beispiel: | |
Ergebnis: |
ON ERROR GOTO | |
Typ: | Befehl |
Syntax: | ON ERROR GOTO {<Marke>|0} |
Erklärung: | Wenn während des Programmlaufs ein Fehler auftritt, der eine Fehlermeldung zur Folge hätte, kann dieser
mit ON ERROR GOTO abgefangen werden. Bei Auftreten des Fehlers wird zur angegebenen Marke verzweigt. Wird statt einer Marke eine Null angegeben so ist die Fehlerüberwachung wieder abgeschaltet. Die eigene Fehlerbehandlung muß unbedingt mit RESUME, RESUME <Marke> oder RESUME NEXT abgeschlossen werden, damit erkennbar ist, was zur Fehlerbehandlung und was zum normalen Programm gehört. Also nicht die Fehlerbehandlung mit GOTO verlassen. Tritt während der Fehlerbehandlung erneut ein Fehler auf, so wird der erneute Fehler in jedem Fall vom Omikron Basic behandelt, da das Programm sonst in eine Endlosschleife geraten würde. Die Systemvariablen ERR, ERR$ und ERL enthalten Fehlernummer, Fehlertext und Fehlerzeile. (Siehe 'Fehlermeldungen des Omikron Basics'). Beispiel siehe auch RESUME. |
Beispiel: |
A#=0 PRINT 1/A# PRINT A# END -Fehler |
Ergebnis: |
Hinweis: Der Fehler wird nur bemerkt, wenn die FPU-Exceptions eingeschaltet sind (siehe Compiler Steuerwörter). |
siehe auch: | RESUME Fehlermeldungen des Omikron Basics |
ON ... GOSUB | |
Typ: | Befehl |
Syntax: | ON <num.Ausdruck>GOSUB <Marke>[[,<Marke>]] |
Erklärung: | In Abhängigkeit vom numerischen Ausdruck wird zu einem der durch die Marken definierten Unterprogramme verzweigt.
Ist der numerische Ausdruck eins, wird zum ersten, ist er zwei, wird zum zweiten verzweigt usw. Ist der numerische
Ausdruck 0 oder größer als die Anzahl der angegebenen Marken, so wird überhaupt nicht verzweigt
und der Befehl wird ignoriert. Das Unterprogramm muß mit RETURN abgeschlossen sein. |
Beispiel: |
ON Wert GOSUB Tier,Gemüse,Baum END -Tier: PRINT "Hund": RETURN |
Ergebnis: |
|
siehe auch: | ON GOTO GOSUB |
ON ... GOTO | |
Typ: | Befehl |
Syntax: | ON <num.Ausdruck>GOTO <Marke>[[,<Marke>]] |
Erklärung: | In Abhängigkeit vom numerischen Ausdruck wird zu einer der angegebenen Marken verzweigt. Ist der num. Ausdruck eins, wird zur ersten, ist er zwei, wird zur zweiten Marke verzweigt usw. Ist der numerische Ausdruck 0 oder größer als die Anzahl der angegebenen Marken, so wird überhaupt nicht verzweigt und der Befehl wird ignoriert. |
Beispiel: |
ON Wert GOTO Tier,Gemuese,Baum END -Tier: PRINT "Hund": END |
Ergebnis: |
|
siehe auch: | ON GOSUB GOTO |
ON HELP GOSUB | |
Typ: | Befehl |
Syntax: | ON HELP GOSUB <Marke|0> |
Erklärung: | Wenn die [Help]-Taste gedrückt wird, so wird zu dem durch <Marke> definierten Unterprogramm verzweigt.
Welche Taste als [Help]-Taste dienen soll, kann mit der Prozedur Set_Help aus der ExtensionLibrary bestimmt werden. Das Unterprogramm muß mit RETURN abgeschlossen werden. Eine 0 hinter dem Befehl schaltet die [Help]-Tastenüberwachung wieder ab. |
Beispiel: |
PRINT "Bitte [Help]-Taste drücken." REPEAT 'Hier steht Ihr Hauptprogramm UNTIL Ende END -Hilfe PRINT "Die Hilfe-Taste wurde gedrückt." Ende=-1 RETURN |
Ergebnis: |
Die Hilfe-Taste wurde gedrückt. |
siehe auch: | ON KEY GOSUB Set_Help |
ON KEY GOSUB | |
Typ: | Befehl |
Syntax: | ON KEY GOSUB <Marke|0> |
Erklärung: | Sobald der Benutzer eine Taste drückt, wird zu dem durch <Marke> definierten Unterprogramm verzweigt.
Eine 0 hinter dem Befehl schaltet die Tastaturüberwachung wieder ab. |
Beispiel: |
PRINT "Bitte einige Tasten drücken. [Esc]->Ende" REPEAT 'Hier steht Ihr Hauptprogramm UNTIL Ende END -Taste Taste= CVIL( INKEY$ ) Shiftbits=Taste SHR 24 Scancode= HIGH(Taste) AND $FF Ascii=Taste AND $FF PRINT "Shiftbits:";Shiftbits;" "," Scancode:";Scancode;" " PRINT "ASCII:";Ascii;" " IF Scancode=35 THEN Ende=-1 RETURN |
Ergebnis: |
|
siehe auch: | ON HELP GOSUB |
ON MOUSEBUT GOSUB | |
Typ: | Befehl |
Syntax: | ON MOUSEBUT GOSUB {<Marke>|0} |
Erklärung: | Immer wenn die Maustaste gedrückt wird, verzweigt das Programm zu dem durch <Marke>definierten Unterprogramm. Wichtig: das Unterprogramm wird nur angesprungen, wenn sich der Zustand der Maustasten ändert: Wenn Sie also eine Maustaste drücken und dann gedrückt halten, so wird das Unterprogramm nur einmal abgearbeitet. Die Null hinter GOSUB schaltet die Mausknopfüberwachung wieder aus. |
Beispiel: |
PRINT "Bitte Maustaste drücken" REPEAT Hier steht ihr Hauptprogramm UNTIL LEN( INKEY$ ) END -Maustaste PRINT "Mausknopfzustand: "; MOUSEBUT RETURN |
Ergebnis: |
|
siehe auch: | ON KEY GOSUB MOUSEBUT |
ON ... RESTORE | |
Typ: | Befehl |
Syntax: | ON <num.Ausdruck>RESTORE <Marke>[[,<Marke>]] |
Erklärung: | Der Zeiger, der auf die nächste durch READ zu lesende offene Zuweisung zeigt, wird in Abhängig von dem numerischen Ausdruck verschoben. Ist der Wert des numerischen Ausdrucks eins, so gilt die erste, ist er zwei, so gilt die zweite Marke usw. Der DATA-Zeiger zeigt auf die erste durch DATA definierte offene Zuweisung, die hinter der betreffenden Marke erscheint. Ist der numerische Ausdruck 0 oder größer als die Anzahl der angegebenen Marken, so wird der DATA-Zeiger nicht verschoben und der Befehl ignoriert. |
Beispiel: |
-Tier: DATA "Hund" -Gemuese: DATA "Kohl" -Baum: DATA "Eiche" NPUT "WERT (1-3): ";Wert ON Wert RESTORE Tier,Gemuese,Baum READ Text$ PRINT Text$ |
Ergebnis: |
|
siehe auch: | RESTORE DATA ON ... GOTO ON ... GOSUB |
ON TIMER ... GOSUB | |
Typ: | Befehl |
Syntax: | ON TIMER <num.Ausdruck>GOSUB {<Marke>|0} ON TIMER <Zeit in sec>GOSUB {<Marke>|0} |
Erklärung: | Das durch <Marke> definierte Unterprogramm, wird alle <Zeit> Sekunden angesprungen. Wird als Sprungziel 0 angegeben, so wird die Zeitgeberüberwachung wieder abgeschaltet. Achten Sie darauf, daß Ihr Unterprogramm nicht zuviel Zeit in Anspruch nimmt. Benötigt im Extremfall Ihr Unterprogramm mehr Zeit als das von Ihnen eingestellte Intervall, so wird es sofort nach seiner Beendigung erneut aufgerufen und es bleibt keine Zeit mehr zur Ausführung des eigentlichen Programms übrig. |
Beispiel: |
REPEAT 'Hier könnte Ihr Hauptprogramm stehen UNTIL LEN(INKEY$) END -Uhr PRINT CHR$(27)+"j"+@(0,0)+TIME$+" "+DATE$+CHR$(27)+"k"; RETURN |
Ergebnis: |
|
siehe auch: | TIMER ON HELP GOSUB ON KEY GOSUB ON MOUSEBUT GOSUB |
ON TRON GOSUB | |
Erklärung: | Hat in Omikron Basic 6 keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. |
OPEN | |
Typ: | Befehl |
Syntax: | OPEN <String-Ausdruck>,<num.Ausdruck>, <String-Ausdruck>[,<num.Ausdruck>]
OPEN <Mode-Kennung>,<Dateinummer>,<Dateiname>[,<Satzlänge>] |
Erklärung: | OPEN öffnet eine Datei. Die ein Zeichen lange Mode-Kennung charakterisiert die Art der Datei, die geöffnet
werden soll. Omikron Basic verwaltet bis zu 16 gleichzeitig offene Dateien. Die Dateinummer muß deshalb zwischen
1 und 16 liegen und dient bei allen weiteren Dateioperationen als Erkennungsmerkmal (Handle) für diese Datei.
In dem Dateinamen muß ein FileSpecificationRecord übergeben werden, wie man ihn z.B. von FILESELECT oder der Funktion 'Get_Fsspec$' aus der ExtensionLibrary zurückerhält. Die verschiedenen Modi haben folgende Bedeutung: "I" "Input" Sequentielle Datei; nur zum lesen "O" "Output" Sequentielle Datei; nur zum schreiben, löscht eine bereits bestehende Datei "A" "Append" Sequentielle Datei; nur zum schreiben, an eine bestehende Datei wird angefügt "R" "Random" Random-Access-Datei; lesen und schreiben, feste Satzlänge; Verwendung von FIELD/PUT/GET "U" "User" Random-Access-Datei; lesen und schreiben, keine feste Satzlänge; Verwendung von PUT/GET/SEEK "P" "Printer" öffnet einen Kanal auf die serielle Druckerschnittstelle "V" "V24" öffnet einen Kanal auf die serielle Modemschnittstelle Zunächst zu den drei sequentiellen Dateimodi "Input", "Output" und "Append". Mögliche Schreib-Lese-Funktionen: PRINT #, WRITE #, INPUT #, INPUT$(,) oder LINE INPUT #. Desweiteren können EOF und LOF ermittelt werden. Wichtig: Um eine Datei mit "Append" zu öffnen, muß diese bereits bestehen, ansonsten wird ein Fehler ausgelöst. Die Random-Access-Datei vom Typ "R" benötigt als zusätzlichen Parameter die Satzlänge. Wird keine Satzlänge angegeben, so gilt die voreingestellte Satzlänge von 128. Vor jedem Schreib- oder Lesevorgang müssen mittels FIELD eine oder mehrere Puffervariablen definiert werden. GET und PUT lesen bzw. schreiben dann einen beliebigen Datensatz. Der erste Datensatz hat die Nummer 1. Wird ein Satz geschrieben, der noch nicht innerhalb der Datei existierte, so wird die Datei automatisch verlängert. Die "User" Datei benötigt keine Angabe der Satzlänge. Man kann beliebige Datenmengen lesen oder schreiben. Die Vereinbarung einer Puffervariablen entfällt, man schreibt/liest mit PUT/GET direkt einen Speicherblock oder einen String. Zusätzlich kann der Schreib-Lese-Zeiger mit SEEK neu positioniert werden. Die Datei-Modi, welche die Schnittstellen des Rechners ansprechen, funktionieren analog zu sequentiellen Datein. Es wird eben von der betreffenden Schnittstelle gelesen bzw. auf ihr ausgegeben. Besonders nützlich ist dies im Zusammenhang mit dem CMD-Befehl. Funktionen wie LOF, LOC oder EOF sind bei Kanälen, die für Schnittstellen geöffnet wurden, nicht erlaubt. |
Beispiel: |
'Die Extension Library muß zuvor vom Editor aus geladen worden sein. |
Ergebnis: |
Caspar Melchior Balthazar |
siehe auch: | CLOSE PRINT # WRITE # INPUT # INPUT$ LINE INPUT EOF LOF |
OR | |
Typ: | Operator |
Syntax: | <num.Ausdruck>OR <num.Ausdruck> |
Erklärung: | Verknüpft die beiden numerischen Ausdrücke "logisch-oder". |
Beispiel: |
|
Ergebnis: |
|
siehe auch: | AND NAND XOR NOR IMP EQV NOT |
OTHERWISE | |
Typ: | Befehl |
Syntax: | OTHERWISE |
Erklärung: | Innerhalb einer SELECT ... CASE Anweisung wird mit OTHERWISE oder DEFAULT der Programmzweig eingeleitet, der ausgeführt werden soll, wenn keine der anderen Alternativen zutraf. Der OTHERWISE-Zweig muß immer die letzte Möglichkeit innerhalb der SELECT ... CASE Anweisung sein. Ein weiteres CASE darf nicht folgen. |
Beispiel: | |
Ergebnis: | |
siehe auch: | DEFAULT |
OUTLINE | |
Typ: | Befehl |
Syntax: | OUTLINE {ON|OFF} |
Erklärung: | Die Außenlinie (Umrahmung) aller gefüllten Rechtecke, Kreise usw. können Sie mit diesem Kommando an- oder ausschalten. Ein Beispiel macht dies wohl am besten deutlich |
Beispiel: |
FILL STYLE=2,4 OUTLINE OFF: PCIRCLE 100,100,80 OUTLINE ON: PCIRCLE 200,100,80 |
Ergebnis: |
|
siehe auch: |
PALETTE | |
Typ: | Befehl |
Syntax: | PALETTE [<num.Ausdruck>],[[,<num.Ausdruck>]] PALETTE [<Startregister>],[[,<Farbregister0>,<Farbregister1>,...]] |
Erklärung: | Schreibt die angegebenen Werte in die interne Farbtabelle des Omikron Basics. Der erste Parameter gibt an, ab welchem Index geschrieben werden soll. Danach können weitere Parameter folgen, die in die nachfolgenden Farbregister eingetragen werden. Die Parameter für die Farben müssen als RGBColor-Record angegeben werden, wobei jeweils 2 Byte (Wert 0-65535) für Rot, Grün und Blau anzusetzen sind (RRGGBB). |
Beispiel: | |
Ergebnis: | |
siehe auch: | Get_Indexed_Color Set_Indexed_Color |
PBOX | |
Typ: | Befehl |
Syntax: | PBOX <num.Ausdruck>,<num.Ausdruck> { TO <num.Ausdruck>,<num.Ausdruck>|,<num.Ausdruck>,<num.Ausdruck>}
PBOX <X>,<Y>{ TO <X2>,<Y2>|,<Breite>,<Höhe>} |
Erklärung: | Zeichnet ein gefülltes Rechteck auf den Bildschirm. Dabei sind entweder zwei gegenüberliegende Ecken
anzugeben, oder eine Ecke, Breite und Höhe des Rechtecks. Gefüllt wird mit der durch FILL
COLOR definierten Farbe und dem durch FILL STYLE definierten Füllstil.
Die Umrandung ist unabhängig von den Einstellungen durch LINE STYLE und LINE WIDTH immer eine durchgezogene, ein Pixel breite Linie. Die Farbe entspricht der Füllfarbe. Die Umrandung kann mit OUTLINE ON|OFF ein- bzw. ausgeschaltet werden. Ist mittels CLIP ein Bildfenster definiert, so wird außerhalb dieses Bereiches nicht gezeichnet. |
Beispiel: | |
Ergebnis: | |
siehe auch: | BOX PRBOX RBOX |
PCIRCLE | |
Typ: | Befehl |
Syntax: | PCIRCLE <num.Ausdruck>,<num.Ausdruck>,<num.Ausdruck>[,<num. Ausdruck>,<num.Ausdruck>]
PCIRCLE <X>,<Y>,<Radius>[,<Startwinkel>,<Endwinkel>] |
Erklärung: | Zeichnet um den Mittelpunkt X,Y einen gefüllten Kreis mit dem angegebenen Radius. Optional können Start-
und Endwinkel in Zehntel-Graden angegeben werden. Hierbei ist Winkel=0 rechts vom Mittelpunkt, Winkel=900 oberhalb
des Mittelpunkts etc.. Gefüllt wird mit der durch FILL COLOR definierten Farbe und dem durch FILL STYLE definierten Füllstil. Die Umrandung ist unabhängig von den Einstellungen durch LINE STYLE und LINE WIDTH immer eine durchgezogene, ein Pixel breite Linie. Die Farbe entspricht der Füllfarbe. Die Umrandung kann mit OUTLINE ON|OFF ein- bzw. ausgeschaltet werden. Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereiches nicht gezeichnet. |
Beispiel: | |
Ergebnis: | |
siehe auch: | PELLIPSE CIRCLE ELLIPSE |
PEEK | |
Typ: | Funktion |
Syntax: | PEEK(<num.Ausdruck>) |
Erklärung: | Liest an der durch den numerischen Ausdruck gegebenen Adresse ein Byte. |
Beispiel: | |
Ergebnis: | |
siehe auch: | WPEEK LPEEK POKE WPOKE LPOKE |
PELLIPSE | |
Typ: | Befehl |
Syntax: | PELLIPSE <num.Ausdruck>,<num.Ausdruck>,<num.Ausdruck>, <num.Ausdruck>[,<num.Ausdruck>,<num.Ausdruck>]
PELLIPSE <X>,<Y>,<X-Radius>,<Y-Radius>, [,<Startwinkel>,<Endwinkel>] |
Erklärung: | Zeichnet um den Mittelpunkt X,Y eine Ellipse mit den angegebenen Radien. Optional können Start- und Endwinkel
in Zehntel-Graden angegeben werden. Hierbei ist Winkel=0 rechts vom Mittelpunkt, Winkel=900 oberhalb des Mittelpunkts
etc.. Gefüllt wird mit der durch FILL COLOR definierten Farbe und dem durch FILL STYLE definierten Füllstil. Die Umrandung ist unabhängig von den Einstellungen durch LINE STYLE und LINE WIDTH immer eine durchgezogene, ein Pixel breite Linie. Die Farbe entspricht der Füllfarbe. Die Umrandung kann mit OUTLINE ON|OFF ein- bzw. ausgeschaltet werden. Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereiches nicht gezeichnet. |
Beispiel: | |
Ergebnis: | |
siehe auch: | PCIRCLE CIRCLE ELLIPSE |
PI | |
Typ: | Funktion |
Syntax: | PI |
Erklärung: | Gibt die Kreiszahl PI als Double-Float-Zahl. |
Beispiel: |
|
Ergebnis: |
|
siehe auch: |
POINT | |
Typ: | Funktion |
Syntax: | POINT(<num.Ausdruck>,<num.Ausdruck>) POINT(<X>,<Y>) |
Erklärung: | POINT liefert einen Pointer auf den RGBColor-Record eines bestimmten Punktes. |
Beispiel: | |
Ergebnis: | |
siehe auch: |
POKE | |
Typ: | Befehl |
Syntax: | POKE <num.Ausdruck>,<num. Ausdruck> POKE <Adresse>,<Wert> |
Erklärung: | Legt den Wert an der gegebenen Adresse als ein Byte ab. Der Wert muß zwischen 0 und 255 liegen. |
Beispiel: | |
Ergebnis: | |
siehe auch: | PEEK WPEEK LPEEK WPOKE LPOKE |